1

文章涉及到的API:req.paramsres.json()app.get(),app.post(),app.param()

API讲解

1. app.get()app.post()

配置客户端路由(请求地址)。

app.post('/get_json/:id', function (req, res) {
  // 响应块代码
})

这里配置了一个POST请求的地址。将app.post()改成app.get()也是可以的,只是请求类型会变成get

2. req.params

一个对象,其包含了一系列的属性,这些属性和在路由中命名的参数名是一一对应的。例如,如果你有/user/:name路由,name属性可通过req.params.name的方式获取到,这个对象默认值为{}。

3. res.json()

发送一个json的响应。这个方法和将一个对象或者一个数组作为参数传递给res.send()方法的效果相同。不过,你可以使用这个方法来转换其他的值到json,例如nullundefined。(虽然这些都是技术上无效的JSON)。

4. app.param()

这个API有两个参数,(name, callback),name是被监听参数的字段名, callback则是对监听结果的回调函数。callback有四个参数,分别是 requestresponsenextnamerequest做请求处理,response做响应处理,next执行正确参数时的函数操作,name是被监听参数的值。

app.param('id', function(req, res, next, id) {
    if (id == 3) {
        next() // 参数正确调用next函数
    } else { // 监听参数不存在或者错误,给出错误响应
        console.log('Erro !!!');
        res.send('Erro !!!!');
    }
})

示例代码

  • 服务端代码
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
// 解析json格式的数据
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

// POST请求 返回JSON串数据
app.post('/get_json/:id', function (req, res) {
   console.log("接收到 POST 请求");
   var json = {
           'message': '欢迎访问',
           'data': { 'a': 1, 'b': 2, 'c': 4, 'd': 3, 'e': 5 }
   }
   res.json(json);
})
// 处理不同参数的请求
app.param('id', function(req, res, next, id) {
    if (id == 3) {
        next() // 执行正常操作,返回JSON数据
    } else {
        console.log('Erro !!!');
        console.log(req.params);
        res.send('Erro !!!!');
    }
})
  • 客户端请求
ajax({
    url: '/get_json/1',  // 传 3 的时候,后台才会返回JSON数据
    type: 'POST',
    data: data,
    success: function(data){
        // console.log( JSON.parse(data) );
           console.log(data);
    }
})

逸心丿
68 声望2 粉丝